import { IPSAppCounterRef } from '../../app/control/ipsapp-counter-ref';
import { IPSControl } from '../ipscontrol';
import { IPSControlContainer } from '../ipscontrol-container';
import { IPSSearchBarFilter } from './ipssearch-bar-filter';
import { IPSSearchBarGroup } from './ipssearch-bar-group';
import { IPSSearchBarQuickSearch } from './ipssearch-bar-quick-search';

/**
 *
 * @export
 * @interface IPSSearchBar
 */
export interface IPSSearchBar extends IPSControlContainer, IPSControl {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 更多分组显示文本
   * @type {string}
   */
  groupMoreText: string;

  /**
   * 应用计数器引用
   *
   * @type {IPSAppCounterRef}
   */
  getPSAppCounterRef(): IPSAppCounterRef | null;

  /**
   * 过滤项集合
   *
   * @type {IPSSearchBarFilter[]}
   */
  getPSSearchBarFilters(): IPSSearchBarFilter[] | null;

  findPSSearchBarFilter(objKey: any): IPSSearchBarFilter | null;

  /**
   * 分组项集合
   *
   * @type {IPSSearchBarGroup[]}
   */
  getPSSearchBarGroups(): IPSSearchBarGroup[] | null;

  findPSSearchBarGroup(objKey: any): IPSSearchBarGroup | null;

  /**
   * 快速搜索项集合
   *
   * @type {IPSSearchBarQuickSearch[]}
   */
  getPSSearchBarQuickSearchs(): IPSSearchBarQuickSearch[] | null;

  findPSSearchBarQuickSearch(objKey: any): IPSSearchBarQuickSearch | null;

  /**
   * 快速分组显示数量
   * @type {number}
   */
  quickGroupCount: number;

  /**
   * 快速搜索模式
   * @description 值模式 [搜索栏快速搜索模式] {0：否、 1：默认、 2：高级（快速搜索项） }
   * @type {( number | 0 | 1 | 2)}
   */
  quickSearchMode: number | 0 | 1 | 2;

  /**
   * 快速搜索框宽度
   * @type {number}
   */
  quickSearchWidth: number;

  /**
   * 搜索栏样式
   * @description 值模式 [实体搜索栏样式] {SEARCHBAR：搜索栏、 SEARCHBAR2：搜索栏2、 MOBSEARCHBAR：移动端搜索栏、 MOBSEARCHBAR2：移动端搜索栏2、 USER：用户自定义、 USER2：用户自定义2 }
   * @type {( string | 'SEARCHBAR' | 'SEARCHBAR2' | 'MOBSEARCHBAR' | 'MOBSEARCHBAR2' | 'USER' | 'USER2')}
   */
  searchBarStyle:
    | string
    | 'SEARCHBAR'
    | 'SEARCHBAR2'
    | 'MOBSEARCHBAR'
    | 'MOBSEARCHBAR2'
    | 'USER'
    | 'USER2';

  /**
   * 支持过滤器
   * @type {boolean}
   */
  enableFilter: boolean;

  /**
   * 支持数据分组
   * @type {boolean}
   */
  enableGroup: boolean;

  /**
   * 支持快速搜索
   * @type {boolean}
   */
  enableQuickSearch: boolean;

  /**
   * 移动端搜索栏
   * @type {boolean}
   */
  mobileSearchBar: boolean;
}
